package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import com.itheima.service.EmpServce;
import com.itheima.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;


@RestController
@Slf4j
public class LoginController {

    @Autowired
    private EmpServce empServce;

    /*
       实现处理登录的功能
     */
    @PostMapping("/login")
    public Result login(@RequestBody Emp emp) {//emp是来接收 用户名和密码的
        // 需要  empService  完成登录  其实就是 根据用户名和密码 查询 一个用户信息
//        Emp loginEmp = empServce.login(emp);//emp里面是用户名和密码信息
        // loginEmp 是去数据库查询出来 返回的对象 可能有可能没
//        if (loginEmp != null) {
//            return Result.success();
//        }
//        return Result.error("用户名或者密码错误");
        /**
         * ================================【加上jwt令牌后的登录效果】
         * @author :速趴赛亚锦
         * @create :2024/03/18 14:05
         */
        // 需要  empService  完成登录  其实就是 根据用户名和密码 查询 一个用户信息
        Emp loginEmp = empServce.login(emp);//emp里面是用户名和密码信息
        // loginEmp 是去数据库查询出来 返回的对象 可能有可能没
        // 密码用户对了 不是null  用户密码错了 就是null
        if (loginEmp != null) {
            // 设置存到令牌中的数据
            Map<String, Object> data = new HashMap<>();
            data.put("id", loginEmp.getId());//谁登录了
            data.put("username", loginEmp.getUsername());//登录人账号
            data.put("name", loginEmp.getName());//登录人名字
            // 生成一个令牌
            String jwt = JwtUtils.generateJwt(data);

            // 下发给浏览器
            return Result.success(jwt);
        }
        //否则
        return Result.error("用户名或者密码错误");
    }
}